03-3258-1238
03-3258-1238平日9:00 ~ 18:00(土日祝日除く)
たった1行のコマンドで、明るさ、コントラスト、色相、ホワイトバランスなどの設定を変更できるカメラの設定用ウィンドウを出す”CAP_PROP_SETTINGS”コマンドが非常に便利なのご紹介します。
画像処理ライブラリ「OpenCV」のインストールがまだという方は、こちらもご確認ください。 初めてのOpen CV(画像処理ライブラリ)ガイド
カメラの設定をOpenCVで変更する場合には、VideoCaptureの後に、set()コマンドを使用します。例えば、コントラストを変更したい場合、コントラスト変更のパラメータは、CAP_PROP_CONTRASTなので、以下のようなコマンドで設定が可能です。
cap.set(cv2.CAP_PROP_CONTRAST, [設定値])
この設定方法は、プログラム起動時などにコントラストの値を固定する場合には便利ですが、カメラアプリなどでよく実現されている、カメラの設定をリアルタイムにスライドバー等で変更できるようにするという観点では、”スライドバーを表示するGUI部分”と”ユーザーが行った設定値を読み込んで設定を変更する部分”のプログラムコードを書く必要があるため大変です。
そこで便利なのが、CAP_PROP_SETTINGSというコマンドです。 このパラメータを1に設定すると、OpenCVのライブラリ内に用意されているパラメター変更用のウィンドウが開き、こちらで設定が変更できるようになります。
cap.set(cv2.CAP_PROP_SETTINGS, 1)
パラメター変更用のウィンドウで設定できるパラメータは、接続するカメラの性能にもよりますが、「明るさ、コントラスト、色合い、鮮やかさ、鮮明度、ガンマ、ホワイトバランス、逆光補正、ゲイン」と幅広く対応しています。
注意点は、DirectShow(DSHOW)経由での画像の取得にしか対応していないため、VideoCaptureの際に、CAP_DSHOWのOptionを付加しておく必要がある点です。
たった1行追加するだけの簡単なコマンドですので、ぜひお試しください。
以下に、カメラからの画像入力及びディスプレイへの画像出力を含めたPythonのサンプルコードをご紹介します。
import cv2 cap = cv2.VideoCapture(1, cv2.CAP_DSHOW) cap.set(cv2.CAP_PROP_SETTINGS, 1) while True: ret, img = cap.read() cv2.imshow('video image', img) key = cv2.waitKey(10) if key == 27: break cap.release() cv2.destroyAllWindows()
サンプルコードの実行には、PythonとOpenCVのインストールが必要です。
v4l2でカメラパラメータを確認
初めてのPythonガイド
初めてのOpenCVガイド
カメラの設定の確認・変更
カメラの設定Windowを簡単に出す
フレームレートの設定・確認方法
USBケーブルの延長方法
ハイスピードカメラとは
USBカメラの「ゲイン」設定
カメラの必要な画角
KLV大学マシンビジョンコース
詳細ページ